//class Solution {
//public:
//    vector<vector<int>> fourSum(vector<int>& nums, int target)
//    {
//        sort(nums.begin(), nums.end());
//        vector<vector<int>> vv;
//
//        for (int i = 0; i < nums.size(); )
//        {
//
//            long long target1 = target - nums[i];
//            for (int j = i + 1; j < nums.size(); )
//            {
//                int left = j + 1;
//                int right = nums.size() - 1;
//
//                long long target2 = target1 - nums[j];
//                while (left < right)
//                {
//                    if (nums[left] + nums[right] < target2)
//                    {
//                        left++;
//                    }
//                    else if (nums[left] + nums[right] > target2)
//                    {
//                        right--;
//                    }
//                    else
//                    {
//                        vv.push_back({ nums[left],nums[right],nums[i],nums[j] });
//                        left++;
//                        right--;
//
//                        while (left < right && nums[left] == nums[left - 1])
//                        {
//                            left++;
//                        }
//
//                        while (left < right && nums[right] == nums[right + 1])
//                        {
//                            right--;
//                        }
//                    }
//                }
//
//                j++;
//                while (j < nums.size() && nums[j] == nums[j - 1])
//                {
//                    j++;
//                }
//            }
//
//            i++;
//            while (i < nums.size() && nums[i] == nums[i - 1])
//            {
//                i++;
//            }
//        }
//
//        return vv;
//    }
//};